package com.sdhs.paas.gateway.constant;

public abstract interface AmeConstant
{
  public static final String JWT_HEADER_TOKEN_NAME = "token";
  public static final String HEADER_POLICY_ATTRS = "amePolicyAttrs";
  public static final String HEADER_REQ_USERID = "requserid";
  public static final String HEADER_REQ_CLIENT_IP = "ReqClientIP";
  public static final String RULE_SPLIT_CHAR = ",";
  public static final String CACHE_MANAGER_BEAN_NAME = "ame-ehcacheManager";
  public static final long ANONYMOUS_ID = -1L;
  public static final int ANONYMOUS_ACCOUNT_TYPE = -1;
  public static final int FILTER_ORDER_AUTH = 1;
  public static final int FILTER_ORDER_MENU = 5;
  public static final int FILTER_ORDER_ACCESS = 10;
  public static final String MSG_WRONG_TOKEN = "Token is error or expired";
  public static final String MSG_ACCESS_DENIED = "access was denied";

  public static enum AccountFieldEnum
  {
    ACCOUNT_ID("accountId"), 

    ACCOUNT_NAME("accountName"), 

    PARENT_ID("parentId"), 

    PARENT_NAME("parentName"), 

    ACCOUNT_TYPE("accountType");

    private String value;

    private AccountFieldEnum(String value) {
      this.value = value;
    }

    public String getValue()
    {
      return this.value;
    }
  }

  public static enum NumberEnum
  {
    ZERO, ONE, TWO, THREE, FOUR, FIVE, SIX, SEVEN, EIGHT, NINE, TEN, ELEVEN;
  }

  public static enum AccountTypeEnum
  {
    ADMIN, 
    MASTER, 
    GENERAL;
  }

  public static enum MenuTypeEnum
  {
    MENU, 
    BUTTON;
  }

  public static enum ResourceEnum
  {
    NAMESPACE("namespace");

    private String value;

    private ResourceEnum(String value) {
      this.value = value;
    }

    public String getValue()
    {
      return this.value;
    }
  }

  public static enum ActionEnum
  {
    CREATE("create"), 
    DELETE("delete"), 
    UPDATE("update"), 
    VIEW("view"), 
    MANAGE("manage");

    private String value;

    private ActionEnum(String value) {
      this.value = value;
    }

    public String getValue()
    {
      return this.value;
    }
  }
}